#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QGridLayout>
#include <QtConcurrentRun>
#include <QFutureWatcher>
#include <QFileDialog>

#include "raytracer.h"
#include "scene.h"
#include "camera.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
    RayTracer* _raytracer;
    Scene* _scene;
    Camera* _camera;

    void pause();
    void resume();
    void start();
    void stop();

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

protected:
     void closeEvent(QCloseEvent *event);
    
private slots:
    void on_pushButton_clicked();
    void on_progress(int value);
    void on_pushButton_2_clicked();

    void on_doubleSpinBox_valueChanged(double arg1);

    void on_doubleSpinBox_2_valueChanged(double arg1);
    void on_actionImage_triggered();
    void on_actionImage_HDR_exr_triggered();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H
